package cn.mst.vrs.controller.admin.venue.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.time.LocalTime;

@Schema(description = "管理后台 - 体育场馆新增/修改 Request VO")
@Data
public class VenueSaveReqVO {

    @Schema(description = "体育场馆类型主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1097")
    @NotNull(message = "体育场馆类型主键ID不能为空")
    private Long typeId;

    @Schema(description = "体育场馆编码", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "体育场馆编码不能为空")
    private String code;

    @Schema(description = "体育场馆名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
    @NotEmpty(message = "体育场馆名称不能为空")
    private String name;

    @Schema(description = "体育场馆描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "随便")
    @NotEmpty(message = "体育场馆描述不能为空")
    private String description;

    @Schema(description = "场馆封面地址")
    private String posterUrl;

    @Schema(description = "开放时间", requiredMode = Schema.RequiredMode.REQUIRED, type = "string", format = "HH:mm")
    @NotNull(message = "开放时间不能为空")
    @DateTimeFormat(pattern = "HH:mm")
    private LocalTime openedAt;

    @Schema(description = "关闭时间", requiredMode = Schema.RequiredMode.REQUIRED, type = "string", format = "HH:mm")
    @NotNull(message = "关闭时间不能为空")
    @DateTimeFormat(pattern = "HH:mm")
    private LocalTime closedAt;

    @Schema(description = "单价（元 / 小时)", requiredMode = Schema.RequiredMode.REQUIRED, example = "8648")
    @NotNull(message = "单价（元 / 小时)不能为空")
    private BigDecimal price;

    @Schema(description = "当前场馆状态（0：关闭，1：空闲，2：使用中）", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Integer status = 1;

    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "13712")
    private Long id;

}